/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.bitoon.basketdudes.jpa;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
 *
 * @author paco
 */
@Entity
@Table(name = "equipo_objeto", schema="basket")
@NamedQueries({
    @NamedQuery(name = "EquipoObjeto.findAll"                   , query = "SELECT e FROM EquipoObjeto e"),
    @NamedQuery(name = "EquipoObjeto.findByObjetoId"            , query = "SELECT e FROM EquipoObjeto e WHERE e.equipoObjetoPK.objetoId = :objetoId"),
    @NamedQuery(name = "EquipoObjeto.findByEquipoId"            , query = "SELECT e FROM EquipoObjeto e WHERE e.equipoObjetoPK.equipoId = :equipoId"),
    @NamedQuery(name = "EquipoObjeto.findByCantidad"            , query = "SELECT e FROM EquipoObjeto e WHERE e.cantidad = :cantidad"),
    @NamedQuery(name = "EquipoObjeto.findByEquipoIdObjetoId"    , query = "SELECT e FROM EquipoObjeto e WHERE e.equipoObjetoPK.equipoId = :equipoId and e.equipoObjetoPK.objetoId = :objetoId"),
    @NamedQuery(name = "EquipoObjeto.findByEquipoIdCategoriaId" , 
    query = "SELECT e FROM EquipoObjeto e, Objeto o WHERE e.equipoObjetoPK.objetoId=o.id and e.equipoObjetoPK.equipoId = :equipoId and o.categoria.id = :categoriaId")})
public class EquipoObjeto implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected EquipoObjetoPK equipoObjetoPK;
//    @Basic(optional = false)
//    @Column(name = "cantidad")
    private short cantidad;
    private short slot;

    public short getCantidad() {
        return cantidad;
    }

    public void setCantidad(short cantidad) {
        this.cantidad = cantidad;
    }

    public short getSlot() {
        return slot;
    }

    public void setSlot(short valor) {
        this.slot = valor;
    }


    public EquipoObjeto() {
    }

    public EquipoObjeto(EquipoObjetoPK equipoObjetoPK) {
        this.equipoObjetoPK = equipoObjetoPK;
    }

/*  public EquipoObjeto(EquipoObjetoPK equipoObjetoPK, short cantidad) {
        this.equipoObjetoPK = equipoObjetoPK;
        this.cantidad = cantidad;
    } */

    public EquipoObjeto(int objetoId, int equipoId) {
        this.equipoObjetoPK = new EquipoObjetoPK(objetoId, equipoId);
    }

    public EquipoObjetoPK getEquipoObjetoPK() {
        return equipoObjetoPK;
    }

    public void setEquipoObjetoPK(EquipoObjetoPK equipoObjetoPK) {
        this.equipoObjetoPK = equipoObjetoPK;
    }

  
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (equipoObjetoPK != null ? equipoObjetoPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof EquipoObjeto)) {
            return false;
        }
        EquipoObjeto other = (EquipoObjeto) object;
        if ((this.equipoObjetoPK == null && other.equipoObjetoPK != null) || (this.equipoObjetoPK != null && !this.equipoObjetoPK.equals(other.equipoObjetoPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.bitoon.basketdudes.jpa.EquipoObjeto[equipoObjetoPK=" + equipoObjetoPK + "]";
    }

}
